package com.todo.biz.application.service;

import com.todo.biz.application.entity.bo.CollectSetBO;
import com.todo.biz.application.entity.condition.CollectSetConditionBO;
import com.todo.biz.common.enums.CollectSetTypeEnum;
import com.todo.common.common.entity.response.page.PageResult;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * (CollectSet)表服务接口
 *
 * @author zhangwenxiang
 * @since 2024-03-04 00:19:45
 */
public interface CollectSetService {

    /**
     * 新增集合信息
     *
     * @param collectSetBO
     * @return
     */
    Boolean insertCollectSet(CollectSetBO collectSetBO);

    /**
     * 根据id删除集合信息
     *
     * @param id
     * @return
     */
    Boolean removeCollectSetById(Long id);

    /**
     * 更新集合信息
     *
     * @param collectSetBO
     * @return
     */
    Boolean updateCollectSet(CollectSetBO collectSetBO);

    /**
     * 根据Id查询集合详情
     *
     * @param id
     * @return
     */
    CollectSetBO queryCollectSetById(Long id);

    /**
     * 根据城市和类型（非必需）查询集合列表
     *
     * @param city
     * @param collectType
     * @return
     */
    List<CollectSetBO> queryCollectSetByCity(@NotNull String city, CollectSetTypeEnum collectType);


    /**
     * 多条件查询集合分页信息
     *
     * @param collectSetConditionBO
     * @return
     */
    PageResult<CollectSetBO> queryCollectSetByCondition(CollectSetConditionBO collectSetConditionBO);

    /**
     * 启禁用集合
     *
     * @param id
     * @param enable
     * @return
     */
    Boolean enableCollectSetById(Long id, Boolean enable);
}
